package com.jlf.core.mp.persistence;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jlf.core.domain._SimpleDO;

/**
 * 简单的通用持久化接口
 *
 * @author wujr
 * 2021/1/2
 * @version 1.0
 * 变更历史
 * [wujr 2021/1/2 1.0 新增]
 */
public interface _SimplePersistence<T extends _SimpleDO<T>> extends IService<T> {
    /**
     * 返回该持久化服务的模型名称
     * @return 模型名称
     */
    String name();

    /**
     * 该持久化的领域的类
     * @return 领域类
     */
    Class<T> domainClass();

    /**
     * 构建一个新的领域对象
     * @return 领域对象
     * @throws Exception 构建失败，抛出异常
     */
    default T newDomain() throws Exception{
        return domainClass().newInstance();
    }
}
